struct _GtkContainerPrivate
{
- GtkWidget *focus_child;
-
GdkFrameClock *resize_clock;
guint resize_handler;
static void
gtk_container_init (GtkContainer *container)
{
- GtkContainerPrivate *priv;
-
container->priv = gtk_container_get_instance_private (container);
- priv = container->priv;
-
- priv->focus_child = NULL;
}
static void
if (priv->restyle_pending)
priv->restyle_pending = FALSE;
- g_clear_object (&priv->focus_child);
-
/* do this before walking child widgets, to avoid
* removing children from focus chain one by one.
*/
gtk_container_real_set_focus_child (GtkContainer *container,
GtkWidget *child)
{
- GtkContainerPrivate *priv;
+ GtkWidget *focus_child;
g_return_if_fail (GTK_IS_CONTAINER (container));
g_return_if_fail (child == NULL || GTK_IS_WIDGET (child));
- priv = container->priv;
-
- if (child != priv->focus_child)
- {
- if (priv->focus_child)
- g_object_unref (priv->focus_child);
- priv->focus_child = child;
- if (priv->focus_child)
- g_object_ref (priv->focus_child);
- }
-
+ focus_child = gtk_widget_get_focus_child (GTK_WIDGET (container));
/* check for h/v adjustments
*/
- if (priv->focus_child)
+ if (focus_child)
{
GtkAdjustment *hadj;
GtkAdjustment *vadj;
GtkAllocation allocation;
- GtkWidget *focus_child;
gint x, y;
hadj = g_object_get_qdata (G_OBJECT (container), hadjustment_key_id);
vadj = g_object_get_qdata (G_OBJECT (container), vadjustment_key_id);
if (hadj || vadj)
{
-
- focus_child = priv->focus_child;
-
while (gtk_widget_get_focus_child (focus_child))
focus_child = gtk_widget_get_focus_child (focus_child);
- gtk_widget_translate_coordinates (focus_child, priv->focus_child,
+ gtk_widget_translate_coordinates (focus_child, focus_child,
0, 0, &x, &y);
- _gtk_widget_get_allocation (priv->focus_child, &allocation);
+ _gtk_widget_get_allocation (focus_child, &allocation);
x += allocation.x;
y += allocation.y;
GList *children,
GtkDirectionType direction)
{
- GtkContainerPrivate *priv = container->priv;
GtkWidget *focus_child;
GtkWidget *child;
- focus_child = priv->focus_child;
+ focus_child = gtk_widget_get_focus_child (GTK_WIDGET (container));
while (children)
{